---
title: Encoding
description: Standard TextEncoder and TextDecoder APIs available on all Expo-supported platforms.
sourceCodeUrl: 'https://github.com/expo/expo/tree/main/packages/expo'
packageName: 'expo'
platforms: ['android', 'ios', 'web', 'tvos']
---

The standard URL API is available on all Expo-supported platforms.

## Installation

This API is part of the `expo` package. Refer to the [browser and server runtime support](https://caniuse.com/textencoder) for web and Node.js.

## Usage

`TextEncoder` and `TextDecoder` are available globally without any need to import them.

```js
// [104, 101, 108, 108, 111]
const hello = new TextEncoder().encode('hello');

// "hello"
const text = new TextDecoder().decode(hello);
```

## TextEncoder

The `TextEncoder` API is included in the Hermes engine. See the [source code in TextEncoder.cpp inside the Hermes GitHub repository](https://github.com/facebook/hermes/blob/9e2bbf8eda15936ee00aee4f8e024ceaa7cd800d/lib/VM/JSLib/TextEncoder.cpp#L1).

## TextDecoder

The `TextDecoder` API is not [spec-compliant](https://encoding.spec.whatwg.org/#textdecoder) on native platforms. Only the UTF-8 encoding is supported. If you need support for more encodings, use a polyfill like [`text-encoding`](https://www.npmjs.com/package/text-encoding).
